1. Field of the Invention
This invention relates to model-driven software development, and particularly to a method and system for inconsistency resolution with cycle detection in a model-driven software development environment.
2. Description of Background
During development of a business process management application, business process models and object life cycles provide two complementary views on the system being developed. Business process models show the system in terms of tasks that have to be performed, as well as control and data flow between these tasks. On the other hand, object life cycles focus on one specific data type and how states of objects of this type change across different business processes.
To make the best use of the business process model and object life cycle views in a modeling tool, the user should be able to switch back and forth between them, as well as make changes in either of the views. Making changes to one of the views introduces inconsistencies between the underlying models. As there is often more than one way to propagate a change in one model to the other, the introduced inconsistencies cannot be resolved automatically, and appropriate resolutions need to be selected by the user. In a model-driven software development process, it is common practice to create several models that represent different aspects of the same system. As these models are not independent from each other, consistency between them needs to be maintained. Furthermore, model consistency also plays an important role when reference models are used for alignment with standards and best practices. In this case, a certain level of consistency between models representing a given system and reference models needs to be established.
In order to check consistency of two models, consistency conditions are usually defined. Violations of these consistency conditions give rise to model inconsistencies that need to be resolved. For many types of models, inconsistency resolution is a very challenging and time-consuming process. This is especially the case when inconsistency resolutions have side effects, e.g., applying a resolution introduces new inconsistencies or resolves more than one inconsistency. Resolution side effects can give rise to resolution cycles, which may greatly complicate the resolution process.
Although consistency and inconsistency management have been the subjects of much research in recent years, there is still very little guidance offered to the user during the inconsistency resolution process in existing commercial and academic modeling tools.
What is needed, therefore, is a way to analyze inconsistency resolutions to determine whether they can lead to a resolution cycle, which can be communicated to a user before a particular resolution path is followed.